<?php

namespace Gds\AchatBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Gds\AchatBundle\Entity\CompteBancaire
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Gds\AchatBundle\Entity\CompteBancaireRepository")
 */
class CompteBancaire {

    /**
     * @ORM\ManyToOne(targetEntity="Gds\VenteBundle\Entity\Client", inversedBy="comptes")
     */
    private $client;

    /**
     * @ORM\ManyToOne(targetEntity="Gds\AchatBundle\Entity\Fournisseur", inversedBy="comptes")
     */
    private $fournisseur;

    /**
     * @ORM\OneToMany(targetEntity="Gds\AchatBundle\Entity\LigneReglementFournisseur", mappedBy="compte_bancaire")
     */
    private $lignes_reglement_fournisseur;

    /**
     * @ORM\OneToMany(targetEntity="Gds\VenteBundle\Entity\LigneReglementClient", mappedBy="compte_bancaire")
     */
    private $lignes_reglement_client;

    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string $rib
     *
     * @ORM\Column(name="rib", type="string", length=255)
     */
    private $rib;

    /**
     * @var string $banque
     *
     * @ORM\Column(name="banque", type="string", length=255)
     */
    private $banque;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId() {
        return $this->id;
    }

    /**
     * Set rib
     *
     * @param string $rib
     * @return CompteBancaire
     */
    public function setRib($rib) {
        $this->rib = $rib;

        return $this;
    }

    /**
     * Get rib
     *
     * @return string 
     */
    public function getRib() {
        return $this->rib;
    }

    /**
     * Set fournisseur
     *
     * @param Gds\AchatBundle\Entity\Fournisseur $fournisseur
     * @return CompteBancaire
     */
    public function setFournisseur(\Gds\AchatBundle\Entity\Fournisseur $fournisseur) {
        $this->fournisseur = $fournisseur;

        return $this;
    }

    /**
     * Get fournisseur
     *
     * @return Gds\AchatBundle\Entity\Fournisseur 
     */
    public function getFournisseur() {
        return $this->fournisseur;
    }

    /**
     * Set client
     *
     * @param Gds\VenteBundle\Entity\Client $client
     * @return CompteBancaire
     */
    public function setClient(\Gds\VenteBundle\Entity\Client $client) {
        $this->client = $client;

        return $this;
    }

    /**
     * Get client
     *
     * @return Gds\VenteBundle\Entity\Client 
     */
    public function getClient() {
        return $this->client;
    }

    /**
     * Set banque
     *
     * @param string $banque
     * @return CompteBancaire
     */
    public function setBanque($banque) {
        $this->banque = $banque;

        return $this;
    }

    /**
     * Get banque
     *
     * @return string 
     */
    public function getBanque() {
        return $this->banque;
    }

    /**
     * Constructor
     */
    public function __construct() {
        $this->lignes_reglement_fournisseur = new \Doctrine\Common\Collections\ArrayCollection();
        $this->lignes_reglement_client = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * Add lignes_reglement_fournisseur
     *
     * @param \Gds\AchatBundle\Entity\LigneReglementFournisseur $lignesReglementFournisseur
     * @return CompteBancaire
     */
    public function addLignesReglementFournisseur(\Gds\AchatBundle\Entity\LigneReglementFournisseur $lignesReglementFournisseur) {
        $this->lignes_reglement_fournisseur[] = $lignesReglementFournisseur;

        return $this;
    }

    /**
     * Remove lignes_reglement_fournisseur
     *
     * @param \Gds\AchatBundle\Entity\LigneReglementFournisseur $lignesReglementFournisseur
     */
    public function removeLignesReglementFournisseur(\Gds\AchatBundle\Entity\LigneReglementFournisseur $lignesReglementFournisseur) {
        $this->lignes_reglement_fournisseur->removeElement($lignesReglementFournisseur);
    }

    /**
     * Get lignes_reglement_fournisseur
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getLignesReglementFournisseur() {
        return $this->lignes_reglement_fournisseur;
    }

    /**
     * Add lignes_reglement_client
     *
     * @param \Gds\VenteBundle\Entity\LigneReglementClient $lignesReglementClient
     * @return CompteBancaire
     */
    public function addLignesReglementClient(\Gds\VenteBundle\Entity\LigneReglementClient $lignesReglementClient) {
        $this->lignes_reglement_client[] = $lignesReglementClient;

        return $this;
    }

    /**
     * Remove lignes_reglement_client
     *
     * @param \Gds\VenteBundle\Entity\LigneReglementClient $lignesReglementClient
     */
    public function removeLignesReglementClient(\Gds\VenteBundle\Entity\LigneReglementClient $lignesReglementClient) {
        $this->lignes_reglement_client->removeElement($lignesReglementClient);
    }

    /**
     * Get lignes_reglement_client
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getLignesReglementClient() {
        return $this->lignes_reglement_client;
    }

    public function __toString() {
        return $this->getBanque().' - '.$this->getRib();
    }

}
